package com.youbang.common.logger;

import org.slf4j.Logger;

import com.youbang.common.ErrorCode;
import com.youbang.common.util.StringUtil;

public final class LoggerHelper {

    private Logger logger;
    public LoggerHelper(Class<?> clazz){
        logger = org.slf4j.LoggerFactory.getLogger(clazz.getName());
    }

    /*
        error级别打印
     */
    public void error(ErrorCode errorCode){
        logger.error(String.format("ErrorCode: %s(%d), %s", errorCode.toString(), errorCode.getCode(), errorCode.getMsg()));
    }

    /*
        error级别打印
     */
    public void error(ErrorCode errorCode, String errMsg){
        String msg = errMsg;
        if(StringUtil.isNullOrEmpty(msg)){
            msg = errorCode.getMsg();
        }
        logger.error(String.format("ErrorCode: %s(%d), %s", errorCode.toString(), errorCode.getCode(), msg));
    }

    /*
        info级别打印
     */
    public void info(String errMsg){
        String msg = errMsg;
        if(StringUtil.isNullOrEmpty(msg)){
            msg = "";
        }
        logger.info(msg);
    }

    /*
        fatal级别打印
     */
    public void fatal(ErrorCode errorCode, String errMsg, Exception ex){
        logger.error(String.format("encounter exception: %s(%d), %s", errorCode.toString(), errorCode.getCode(), errMsg), ex);
    }


}
